package edu.unf.cen6940.dao;

import edu.unf.cen6940.domain.Faculty;
import edu.unf.cen6940.domain.Facultyresearch;

import java.util.Set;

import org.skyway.spring.util.dao.JpaDao;

import org.springframework.dao.DataAccessException;

/**
 * DAO to manage Facultyresearch entities.
 * 
 */
public interface FacultyresearchDAO extends JpaDao<Facultyresearch> {

	/**
	 * JPQL Query - findFacultyresearchByTitleContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByTitleContaining(String title) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByTitleContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByTitleContaining(String title, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchStatus
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchStatus(String researchStatus) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchStatus
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchStatus(String researchStatus, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByMinumumRequirements
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByMinumumRequirements(String minumumRequirements) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByMinumumRequirements
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByMinumumRequirements(String minumumRequirements, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByPrimaryKey
	 *
	 */
	public Facultyresearch findFacultyresearchByPrimaryKey(Integer facultyResearchId) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByPrimaryKey
	 *
	 */
	public Facultyresearch findFacultyresearchByPrimaryKey(Integer facultyResearchId, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findAllFacultyresearchs
	 *
	 */
	public Set<Facultyresearch> findAllFacultyresearchs() throws DataAccessException;

	/**
	 * JPQL Query - findAllFacultyresearchs
	 *
	 */
	public Set<Facultyresearch> findAllFacultyresearchs(int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByMinumumRequirementsContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByMinumumRequirementsContaining(String minumumRequirements_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByMinumumRequirementsContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByMinumumRequirementsContaining(String minumumRequirements_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchDescription
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchDescription(String researchDescription) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchDescription
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchDescription(String researchDescription, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByTitle
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByTitle(String title_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByTitle
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByTitle(String title_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchStatusContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchStatusContaining(String researchStatus_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchStatusContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchStatusContaining(String researchStatus_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByFacultyResearchId
	 *
	 */
	public Facultyresearch findFacultyresearchByFacultyResearchId(Integer facultyResearchId_1) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByFacultyResearchId
	 *
	 */
	public Facultyresearch findFacultyresearchByFacultyResearchId(Integer facultyResearchId_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchDescriptionContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchDescriptionContaining(String researchDescription_1) throws DataAccessException;
	
	/**
	 * Advanced Research Search
	 * */
	public Set<Facultyresearch> advancedSearch(Facultyresearch facultyresearch) throws DataAccessException;

	/**
	 * JPQL Query - findFacultyresearchByResearchDescriptionContaining
	 *
	 */
	public Set<Facultyresearch> findFacultyresearchByResearchDescriptionContaining(String researchDescription_1, int startResult, int maxRows) throws DataAccessException;
	
	/**
	 * Search by title and description
	 * */
	public Set<Facultyresearch> searchByTerm(String term) throws DataAccessException;
	
	/**
	 * Search for Facultyresearch By Faculty Id
	 * */
	public Set<Facultyresearch> searchFacultyresearchByFacultyId(int id) throws DataAccessException;
	
	/**
	 * Search for Facultyresearch By Faculty Id
	 * */
	public Set<Facultyresearch> searchFacultyresearchByStudentId(int id) throws DataAccessException;
	
	
	/**
	 * 
	 * searchFacultyresearchByStatus
	 * */
	public Set<Facultyresearch> searchFacultyresearchByStatus(String status) throws DataAccessException;

}